#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
调试上传功能
"""
import sys
import os

# 添加当前目录到Python路径
sys.path.insert(0, os.path.dirname(os.path.abspath(__file__)))

from app import get_field_value, get_numeric_value

def debug_worktime_matching():
    """调试工时字段匹配"""
    
    # 实际Excel格式的测试用例
    test_cases = [
        {
            'name': '实际Excel格式1',
            'headers': ['统计周期', '所属项目', '系统', '总工时（人天）', '状态'],
            'data': ['2024-01', '核心业务系统', '用户管理系统', 5.5, '已完成']
        },
        {
            'name': '实际Excel格式2',
            'headers': ['统计周期', '所属项目', '系统', '需求类型', '状态', '总工时（人天）'],
            'data': ['2024-02', '移动端项目', '支付系统', '功能需求', '进行中', 8.0]
        },
        {
            'name': '带日期字段',
            'headers': ['筛选日期', '统计周期', '所属项目', '系统', '总工时（人天）'],
            'data': ['2024-01-15', '2024-01', '数据平台', '报表系统', 12.5]
        },
        {
            'name': '完整格式',
            'headers': ['统计周期', '所属项目', '系统', '需求类型', '状态', '总工时（人天）', '备注'],
            'data': ['2024-03', '智能推荐', '算法引擎', '优化需求', '已完成', 15.2, '性能优化']
        }
    ]
    
    print("=== 工时字段匹配调试 ===\n")
    
    for case in test_cases:
        print(f"测试用例: {case['name']}")
        print(f"表头: {case['headers']}")
        print(f"数据: {case['data']}")
        
        row_dict = dict(zip(case['headers'], case['data']))
        
        # 测试新的字段匹配逻辑
        # 1. 统计周期字段
        statistics_period_field = get_field_value(row_dict, [
            '统计周期', 'statistics_period', '周期', '期间', '统计期间'
        ])
        
        # 2. 所属项目字段  
        project_name = get_field_value(row_dict, [
            '所属项目', 'project_name', '项目名称', '项目', 'project'
        ])
        
        # 3. 系统字段
        system_name = get_field_value(row_dict, [
            '系统', 'system', '系统名称', '系统字段', '子系统'
        ])
        
        # 4. 工时字段
        worktime = get_numeric_value(row_dict, [
            'worktime', '工时', '总工时', '总工时（人天）', '时长', '工作时间', 
            '耗时', '用时', '投入时间', '人时', '小时', '人天', '工时（人天）'
        ])
        
        # 5. 其他字段
        requirement_type = get_field_value(row_dict, [
            'requirement_type', '需求类型', '类型', '任务类型'
        ])
        
        status = get_field_value(row_dict, [
            'status', '状态', '需求状态', '任务状态'
        ])
        
        print(f"匹配结果:")
        print(f"  统计周期: {statistics_period_field}")
        print(f"  所属项目: {project_name}")
        print(f"  系统: {system_name}")
        print(f"  总工时（人天）: {worktime}")
        print(f"  需求类型: {requirement_type}")
        print(f"  状态: {status}")
        
        # 检查必需字段
        if statistics_period_field and project_name and system_name and worktime:
            print("  ✅ 所有必需字段匹配成功")
        else:
            print("  ❌ 部分必需字段匹配失败")
            missing = []
            if not statistics_period_field:
                missing.append("统计周期")
            if not project_name:
                missing.append("所属项目")
            if not system_name:
                missing.append("系统")
            if not worktime:
                missing.append("总工时（人天）")
            print(f"  缺失字段: {', '.join(missing)}")
        
        print("-" * 50)

if __name__ == "__main__":
    debug_worktime_matching()